import telebot
from  telebot import types 
import database as db


class Bot:
    def __init__(self, bot, database) -> None:
        self.bot = bot
        self.database = database 

    emojis = ('1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣')
    def answer(self, call):
        
        if self.database.check() == False:                                   # Актульность расписания
            check = 'Расписание не актуально 🔴\n'                      
        else:
            check = 'Расписание актуально 🟢\n'
        
        if call.data == 'select':
            keyboard = types.InlineKeyboardMarkup()
            key_monday = types.InlineKeyboardButton(text='Понедельник', callback_data='0')
            key_tuesday = types.InlineKeyboardButton(text='Вторник', callback_data='1')
            key_wednesday = types.InlineKeyboardButton(text='Среда', callback_data='2')
            key_thursday = types.InlineKeyboardButton(text='Четверг', callback_data='3')
            key_friday = types.InlineKeyboardButton(text='Пятница', callback_data='4')
            keyboard.add(key_monday)
            keyboard.add(key_tuesday)
            keyboard.add(key_wednesday)
            keyboard.add(key_thursday)
            keyboard.add(key_friday)
            self.bot.send_message(call.message.chat.id, text='Выбери день', reply_markup=keyboard)
            return
            
        res_list = self.database.getSchedule(call.data)
        if type(res_list) == str:
            self.bot.send_message(call.message.chat.id, check + res_list)    # Проверка на сб или вс.
            return

        if call.data == 'today':
            res = check + 'Вот расписание на сегодня:\n\n'
        elif call.data == 'tomorrow':
            res = check + 'Вот расписание на завтра:\n\n'
        else:
            if call.data == '0':
                res = check + 'Вот расписание на понедельник:\n\n'
            elif call.data == '1':
                res = check + 'Вот расписание на вторник:\n\n'
            elif call.data == '2':
                res = check + 'Вот расписание на среду:\n\n'
            elif call.data == '3':
                res = check + 'Вот расписание на четверг:\n\n'
            elif call.data == '4':
                res = check + 'Вот расписание на пятницу:\n\n'

        emojis_id = 0
        isEmpty = True
        for row in res_list:
            if row[0] == None:
                emojis_id += 1 
                continue
            res += f'{self.emojis[emojis_id]} {row[0]} {row[1]} {row[2]} {row[3]}\n\n'
            emojis_id += 1 
            isEmpty = False
        if isEmpty == True:
            res += 'Пар нету!'
        self.bot.send_message(call.message.chat.id, res)

    def execute(self, message):
        if message.text == '/start':
            keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
            key_schedule = types.KeyboardButton('Расписание 🗓')
            keyboard.add(key_schedule)
            self.bot.send_message(message.from_user.id, 'Привет, я бот расписания 🤖, пока что есть расписания только для ИЦТМС 2-5, но ты можешь помочь сделать его и для других групп, пиши ему @AlexSnare', reply_markup=keyboard)

        if message.text == 'Расписание 🗓':
            keyboard = types.InlineKeyboardMarkup()
            key_tomorrow = types.InlineKeyboardButton(text='Завтра', callback_data='tomorrow')
            key_today = types.InlineKeyboardButton(text='Сегодня', callback_data='today')
            key_day = types.InlineKeyboardButton(text='Выбрать день', callback_data='select')
            keyboard.add(key_today)
            keyboard.add(key_tomorrow)
            keyboard.add(key_day)
            self.bot.send_message(message.from_user.id, text='На какой день нужно расписание?', reply_markup=keyboard)
